草庐IT

c++ - gcc 和 libstdc++ 向前兼容

全部标签

c++ - 编译嵌套参数包代码时出现 gcc 段错误

我试图编写一个代码(截至2014年1月使用mingw32gcc4.8.1)涉及两个参数包Args1...和Args2...。我在这里(http://en.cppreference.com/w/cpp/language/parameter_pack)了解到我需要一个嵌套类。Args1...和Args2...的长度相同(最终我希望从Args1推导出Args2......)。有时它们甚至可以是同一类型。所以我想为这个简单的案例编写一个速记using语句作为开始:templateusingzip_t=zip::with;但是,gcc在编译这条语句时会产生段错误。如果我做错了什么或者这是一个gc

c++ - GCC模板参数模板

我正在尝试使用模板的模板作为参数,当我用clang编译时一切正常,但是当我尝试使用GCC4.8时出现以下错误:can'tdeduceatemplatefor'TReceiver'fromnon-templatetype'DamageAnimationSystem'这是我的情况:我有一个程序,其中类可以为某些类型的事件订阅事件管理器,但不是全部。为此,我继承了一个具有特定类型的类:classDamageAnimationSystem:publicReceiver,publicReceiver在这里,我的类将监听“DamageEvent”和“HealthEvent”,因此我需要为此类事件声

c++ - gcc 4.4 与 gcc >4.4 中的默认链接模型

我正在尝试使用两个大型、复杂的线性代数库,它们定义了许多相同的函数。我不能重写(在一种情况下是合法的,但在技术上是两种情况)它们中的任何一个。我们称它们为“特殊”和“正常”,因为我只从特殊调用了几个函数。为了始终如一地调用normal.h中定义的函数,并且仅在某些情况下从special.h中调用函数,我做了如下操作:namespacespecial_space{#include"special.h"//Definesfoo()}#include"normal.h"//Definesfoo()intmain(){foo();//Callsfoo()definedinnormal.hspe

构成导致不兼容的指针类型。为什么只选择双重指针?

这个问题已经解决这里.建议复制当前给出的答案并没有解决为什么首先给出的示例没有问题。主要为什么不理理由:"constint**isapointertoconstint*这与仅仅是不同的事情int*"也申请:"constint*isapointertoconstint这与仅仅是不同的事情int"我正在从不同的角度接近它,希望得到另一个解释。带有示例的代码。#includevoidf_a(intconsta){/**Can'tdo:*a=3;//error:assignmentofread-onlyparameter‘a’**Explanation:Ican'tchangethevalueofai

c++ - 与 Visual Studio 兼容的免费/开源 Windows Fortran 编译器

我正在尝试将一些遗留Fortran代码与VisualStudioC++项目链接起来。我尝试使用gfortran的Windows构建来构建我的静态库,但VisualStudio提示未解析的外部符号。我猜这是因为混合使用mingw和visualstudio编译器是一个非常糟糕的想法。我用谷歌搜索了一下,发现我的选项是Intel's和Lahey's编译器,但两者都带有高昂的价格标签。有谁知道其他选择,或者我可以采用的不同方法吗?根据评论进行编辑我得到的错误是:Error7errorLNK2019:unresolvedexternalsymbol___chkstkreferencedinfun

GCC 中的 C++11 thread_pool、futures、promises 支持

是N2276中的任何一个gcc支持吗?我目前使用的是4.6.1,其中std::thread似乎工作正常。如果不是,我应该使用boost'sthreadpool?什么是可以轻松过渡到最终futures、promises和thread_pool的良好替代方案/权宜之计?也许this有用吗?N2276似乎没有列出here.我想知道N2276的任何特性是否会被纳入-我想我读到了有关futures和promises以及其他进入C++11的范例:将不得不谷歌看看周围发生了什么。 最佳答案 gccC++librarystatuspage显示其中大

c++ - 在 GCC 中,如何在不导出所有符号的情况下导出共享库的所有类型信息符号?

问题是:我有一个默认隐藏符号的共享库。实际上,它使用-Xlinker--version-script=选项导出特定文件中的一些符号,但隐藏所有其余符号。问题是,如果我们试图捕获在其他共享库中定义的异常,我们就会遇到问题,因为类型信息被这个共享库隐藏了。我无法明确地使异常类可见,因为它们是在我无法控制的开源库中定义的。我也不想在版本脚本符号文件中明确列出异常类的类型信息的损坏名称,因为有许多开发人员在这个库上工作,他们一定会忘记为future。我尝试在开源.hpp文件之前使用#pragmaGCCvisibilitypush(默认),但它似乎没有用-符号不可见。我也尝试过使用-fvisib

c++ - unique_ptr、nullptr 并支持 gcc 4.5.x 和 4.6.x

我正在开发一个有两个不同最终用户的库,其中一个使用gcc4.5.3,另一个刚刚迁移到gcc4.6.3。该库使用新的C++11智能指针(特别是unique_ptr)并在gcc4.5.3上编译良好。然而,在这两个版本之间,gcc开始支持nullptr,因此unique_ptr的API发生了变化,以更接近标准。现在这样做,下面的代码从好到模棱两可unique_ptrup(newint(30));...if(up==0)//ambiguouscallnowtounique_ptr(int)for0是否有一种干净的(即,下一句)方法来更改上面的if语句,以便它在有和没有nullptr的情况下都有

浏览器兼容video视频播放的多种方法&视频在浏览器播放格式,视频浏览器播放格式演示

前言:在HTML中播放视频并不容易!因为直到现在,仍然不存在一项旨在网页上显示视频的标准。今天,大多数视频是通过插件(比如Flash)来显示的。然而,并非所有浏览器都拥有同样的插件。比如windows平台的IE浏览器利用Activex控件来播放flash而其它的浏览器则使用Netscape插件技术来播放flash。而在HTML5中规定了一种通过video元素来包含视频的标准方法,但元素只支持三种视频格式:MP4、WebM、Ogg。开发中我们希望视频文件在所有浏览器中(InternetExplorer,Chrome,Firefox,Safari,Opera)和所有硬件上(PC,Mac,iPad,

远程主机可能不符合 glibc 和 libstdc++ Vs Code 服务器的先决条件

vscode连接远程主机报错,原因官方已经公布过了,需要远程主机glibc>=2.28,所以Ubuntu18及以下版本没法再远程连接了,其他Linux系统执行ldd--version查看glibc版本自行判断。解决方案建议:不要再想升级glibc了问题巨多还麻烦人生苦短没那么多时间折腾先卸载当前版本vscode再下载安装这个版本(记得设置关闭自动更新预计时间5分钟省出来的时间好好享受人生